package fiuba.algo3.algothief;

import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class JugadorInvestigador extends Jugador{
	
	public JugadorInvestigador(String nombre,Ciudad ciudadActual,float tiempo, Interpol interpol) {
		super(nombre,ciudadActual,tiempo, interpol);
		this.velocidad=1300;
		this.rango = "Investigador";
	}
	public  Pista pedirPistaEnLugar(int posicion) throws TeQuedasteSinTiempo{
		Lugar lugar = this.ciudadActual.getLugar((posicion-1));
		Pista pista=null;
		if(this.tiempoRestante>(1+this.cantLugaresVisitadosEnCiudad)){
			
			this.setearTiempo(this.tiempoRestante - 1 - this.cantLugaresVisitadosEnCiudad);
			this.cantLugaresVisitadosEnCiudad=this.cantLugaresVisitadosEnCiudad+1;
			pista= lugar.getPista(this);
			pista.revelar(this);
		}else{
			throw new TeQuedasteSinTiempo();
		}
		return pista;
	}

	
	public static Jugador hidratar(Node elementoJugador) {
		Jugador nuevoJugador = new JugadorInvestigador("",null,0,null);
		nuevoJugador.nombre = ((Element)elementoJugador).getAttribute("nombre");
		nuevoJugador.tiempoRestante = Float.parseFloat(((Element)elementoJugador).getAttribute("tiempoRestante"));
		nuevoJugador.cantLugaresVisitadosEnCiudad = Integer.parseInt(((Element)elementoJugador).getAttribute("cantLugaresVisitadosEnCiudad"));
		nuevoJugador.velocidad = Integer.parseInt(((Element)elementoJugador).getAttribute("velocidad"));
		nuevoJugador.ordenDeArresto = Boolean.parseBoolean(((Element)elementoJugador).getAttribute("ordenDeArresto"));
		nuevoJugador.EncontreAlLadron = Boolean.parseBoolean(((Element)elementoJugador).getAttribute("encontreAlLadron"));
		Element elementoInterpol = (Element)((Element)elementoJugador).getElementsByTagName("Interpol").item(0);
		nuevoJugador.interpol = Interpol.hidratar(elementoInterpol);
		Element elementoCiudadActual = (Element)((Element)elementoJugador).getElementsByTagName("Ciudad").item(0);
		nuevoJugador.ciudadActual = Ciudad.cargar(elementoCiudadActual);
		return nuevoJugador;
	}
	
}